The present invention relates to methods and apparatus for creating and displaying faithful color images on a computer-driven display. More particularly, the invention relates to a method for creating a display-independent palettized image for presentation on a display controlled by a display adapter that contains a display-dependent palette.
The electronic equipment associated with computer-driven displays utilize display adapters for creating numerical representations of colors. Display adapters usually have digital to analog (D/A) converters for each of the three primary colors--red, green and blue. These converters are driven by normalized digital driving signals. The number of binary bits which a D/A converter is capable of dealing with provides a measure of the resolution of the converter, and determines the number of colors from which color palette entries can be chosen. The display adapter also has an image memory, representative of the display pixels, and the number of binary bits per pixel in this memory determines the number of color palette entries that can be used to display a pixel. Usually, the number of palette entries is greatly less than the number of possible color palette choices. The color palette that determines which colors will be used in an image is defined by specific normalized digital driving signals for each color entry in the palette. For example, one practical embodiment of a color display utilizes eight binary bits to define the digital driving signals of each of the three primary colors red, green and blue. This allows for 256 different intensity levels for each primary color. Since a single pixel accommodates three colors, the number of different color choices which are possible for a pixel are 256.sup.3, or 16,777,216. However, a typical number of colors which may be selected as color palette entries are 256 colors, which means that a color palette must be developed that has only 256 colors out of a possible 16 million plus different choices. Color palette entries are usually chosen so as to more or less uniformly extend across the gamut of all color choices, thereby leaving a large number of possible color choices between each actual color selected as a palette entry.
There exist a number of international standards for color measurement. The most prominent international standards for color measurement are collectively termed the Commission Internationale D l'Eclairage, or International Commission on Illumination (CIE system). The CIE system is based on the premise that specific perceived colors result from the proper combination of an illuminant or reference light source, an object, and an observer. A useful explanation of the CIE system is provided in "Principles of Color Technology," Section 2B and 2C, Edition 1981, by Billmeyer and Saltzman. U.S. Pat. No. 4,985,853, issued Jan. 15, 1991, provides a description of the CIE system, and other information relevant to three-dimensional color specification systems. It is presumed that these techniques are known to those having skill in this art.
Current methods for displaying faithful color images on computer-driven displays require that images be prepared for each specific display, thereby consuming a significant amount of computation time and requiring a significant storage space. An image which is to be displayed on a color display is typically represented by three binary values per pixel, each representing a standard CIE tristimulus value, X, Y or Z, and by further binary information which locates the horizontal and vertical coordinates of the pixel on the display screen. The three binary values that define the desired color for each pixel do not necessarily correspond to the colors selected for the color palette that are available in the system to present the image on the display. There therefore needs to be a process of color matching available to the system, wherein the desired image colors (per pixel) may be color matched to the closest palette color available in the system. This process is referred to as "palettizing," wherein a display-ready image is constructed to most closely color match the desired image but using only the available palette colors; each pixel of the display-ready image contains the index of the palette entry desired for that pixel. Two common techniques which are used for palettizing an image are known as "dithering" and "error-diffusion."
The palettizing techniques which are presently known in the art prepare an image for a specific color palette, where the palette is defined as a plurality of chosen colors, each color defined by specific primary color digital driving signal values for red, green and blue. For a given pixel, if the desired color is modified to that of the closest available color palette entry, the palettizing technique will apportion any resulting color error onto adjacent pixels, so as to average out the color differences and more faithfully reproduce a color image overall. However, displays may have differing color presentation characteristics, which complicate this problem; for example, the colors of the phosphors and the luminance (color intensity) response to a given digital drive signal may vary from one display to another. This means that a palettized image will match a desired image only if it is displayed on an identical display, but it may not match on another display.
If the chrominance and luminance response characteristics of each display are known, it is possible to prepare a palettized image that closely approximates with a desired image, but the palettized image will be unique for each display. This means that a single palettized image cannot be prepared for use on all displays of a given type if faithful color is desired. Multiple palettized images for multiple displays require an excessive amount of computation time for their preparation and an excessive amount of storage space for their storage.
In the prior art, the overall process of faithfully displaying a color image on a particular system or display involves at least three operative series of steps. The first series of steps deal with calibrating a particular computer-driven display; the second series of steps deal with preparing a display-specific palettized image for display on the system; the third series of steps deal with actually displaying the prepared image on the system.
The overall process objectives in the prior art are to first determine a matrix of transformation that will transform desired pixel colors, represented as CIE standard tristimulus values (XYZ), into display-specific RGB tristimulus values, to determine a suitable color palette, to measure the XYZ values of each palette entry on a specific display, to compute the RGB tristimulus values that correspond to the measured XYZ values for the palette entries, and to build a display-specific normalized palette table containing these RGB tristimulus values of the palette entries. Next, each pixel of the desired image is replaced by the palette entry index of the closest matching color in the normalized palette table, and any resulting color mismatches are apportioned to adjacent pixels using standard halftoning techniques. The resulting image is a display-specific palettized image that faithfully represents the desired image. Finally, the palette and the display-specific palettized image are copied into the display adapter.
The disadvantage with this prior art process is that each pixel of each image must be re-palettized for each specific display, using the normalized palette table unique to that display. The computation necessary to palettize each image is very substantial, and it must be repeated each time each image is to be displayed on a display that has different chrominance and luminance characteristics.